package main

import (
    "gorm.io/driver/mysql"
    "gorm.io/gen"
    "gorm.io/gorm"
)

var dsn = "go-device:6tDKYPyjJ6zyKXNy@tcp(localhost:3306)/go-device?charset=utf8&parseTime=True&loc=Local&timeout=30s&readTimeout=30s&writeTimeout=30s"

func Init() {
    // 连接数据库
    db, err := gorm.Open(mysql.Open(dsn))
    if err != nil {
        panic("无法连接数据库: " + err.Error())
    }

    // 初始化代码生成器
    g := gen.NewGenerator(gen.Config{
        OutPath:       "G:\\CODE\\goporject\\src\\device-modbus\\internal\\biz\\query", // 输出路径
        Mode:          gen.WithDefaultQuery | gen.WithQueryInterface,
        FieldNullable: false, // 可空字段使用指针类型
        FieldSignable: true,  // 支持无符号整型
    })

    g.UseDB(db) // 设置数据库连接

    // 生成所有表对应的模型和查询方法
    g.ApplyBasic(g.GenerateAllTable()...)

    // 执行代码生成
    g.Execute()
}
func main() {
    Init()
}
